package algo3.grupo3.modelo;


public abstract class ObjetoAnimado implements DependienteDelTiempo,Atravesable{
	
	/*propongo que un objeto animado conozca la posicion que ocupa */
	
	protected Casilla posicion = null;
	
	protected int durabilidad = 0;
	
	
	public void setPosicion(Casilla posicion){
		this.posicion = posicion;
	}//fin de setPosicion
	
	public void lastimar(int poder){
		if(!this.sigueActivo())
			return;
		if(poder > 0)
			this.durabilidad-= poder;
		if(this.durabilidad <= 0){
			this.destruir();
		}
	}//fin de lastimar
	
	public boolean sigueActivo(){
		if(durabilidad <= 0)
			return false;
		return true;
	}//fin de sigueActivo
	
	public void destruir(){
		this.durabilidad= 0;
		this.posicion= null;
	}//fin de destruir
	
	public abstract boolean esAtravesable();
	
	public int obtenerDurabilidad(){
		return this.durabilidad;
	}//fin de obtenerDurabilidad
	
	public int[] obtenerCoordenadas(){
		if(this.posicion == null)
			return null;
		return this.posicion.obtenerPosicion();
	}//fin de obtenerCoordenadas

	protected Casilla obtenerPosicion(){		
		return this.posicion;
	}//fin de obtenerPosicion
	
	public void cambiarDurabilidad(int d){
		if(d<0)
			return;
		this.durabilidad= d;
	}//fin de cambiarDurabilidad
	
}//fin de ObjetoAnimado
